<?php

/**
 * 环境变量读取辅助函数
 * 用于在配置文件中统一读取环境变量
 */

if (!function_exists('getEnvVar')) {
    /**
     * 读取环境变量
     * 优先从.env文件读取，然后是系统环境变量，最后返回默认值
     * 
     * @param string $key 环境变量名
     * @param mixed $default 默认值
     * @return mixed
     */
    function getEnvVar($key, $default = null) {
        // 首先检查 .env 文件
        $envFile = __DIR__ . '/../.env';
        if (file_exists($envFile)) {
            $envContent = file_get_contents($envFile);
            $lines = explode("\n", $envContent);
            foreach ($lines as $line) {
                $line = trim($line);
                // 跳过空行和注释行
                if (empty($line) || strpos($line, '#') === 0) {
                    continue;
                }
                
                // 解析环境变量
                if (strpos($line, '=') !== false) {
                    list($envKey, $envValue) = explode('=', $line, 2);
                    $envKey = trim($envKey);
                    $envValue = trim($envValue);
                    
                    // 移除引号
                    if (!empty($envValue) && 
                        (($envValue[0] === '"' && substr($envValue, -1) === '"') || 
                        ($envValue[0] === "'" && substr($envValue, -1) === "'"))) {
                        $envValue = substr($envValue, 1, -1);
                    }
                    
                    if ($envKey === $key) {
                        return $envValue;
                    }
                }
            }
        }
        
        // 然后检查系统环境变量
        $value = getenv($key);
        if ($value !== false) {
            return $value;
        }
        
        // 返回默认值
        return $default;
    }
}